package com.sdy.resdir.biz.model;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.sdy.common.model.BaseModel;
import com.sdy.common.model.FileObj;
import com.sdy.resdir.biz.vo.CatalogVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sdy.common.utils.DateUtil;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 申请资源详细（子）
 * </p>
 *
 * @author hyh
 * @since 2019-10-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value = "RdResourceApplicationDetail对象", description = "申请资源详细（子）")
public class RdResourceApplicationDetail extends BaseModel {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    @TableId
    private Integer id;

    /**
     * idList
     */
    @ApiModelProperty(value = "主键List")
    @TableField(exist = false)
    private List<Integer> idList;

    /**
     * 总订单号
     */
    @ApiModelProperty(value = "总订单号")
    private String applyNumFather;

    /**
     * 子订单号
     */
    @ApiModelProperty(value = "子订单号")
    private String applyNumChild;

    /**
     * 申请部门名称
     */
    @ApiModelProperty(value = "申请部门名称")
    private String applyDeptName;

    /**
     * 申请人id
     */
    @ApiModelProperty(value = "申请人id")
    private Integer applyUserId;

    @ApiModelProperty(value = "部门id")
    private Integer deptId;

    /**
     * 资源id
     */
    @ApiModelProperty(value = "资源id")
    private Integer resId;

    /**
     * 资源名称
     */
    @ApiModelProperty(value = "资源名称")
    private String resName;

    /**
     * 资源类型
     */
    @ApiModelProperty(value = "资源类型(1.服务接口类 2.服务页面类 3.数据交换类)")
    private Integer resType;

    /**
     * 资源状态（1.公开 2.受限）
     */
    @ApiModelProperty(value = "资源状态（1.公开 2.受限）")
    @TableField(exist = false)
    private Integer resPower;

    /**
     * 资源类型
     */
    @ApiModelProperty(value = "归集情况(1.已上线 2.未上线)")
    private Integer resSituation;

    /**
     * 联系人姓名
     */
    @ApiModelProperty(value = "联系人姓名")
    private String contactName;

    /**
     * 联系人手机
     */
    @ApiModelProperty(value = "联系人手机")
    private String contactTel;

    /**
     * 申请说明
     */
    @ApiModelProperty(value = "申请说明")
    private String remark;

    /**
     * 订单类型(1-正常订单 2-购物车订单 3-服务咨询订单)
     */
    @ApiModelProperty(value = "订单类型(1-正常订单 2-购物车订单 3-服务咨询订单)")
    private Integer type;

    /**
     * 附件
     */
    @ApiModelProperty(value = "附件")
    private String enclosure;

    /**
     * 当前状态（0未确认 1未提交、2待审批、3已提交至审批中心、4审批中、5已撤回、6审批通过、7已驳回）
     */
    @ApiModelProperty(value = "当前状态（0未确认 1未提交、2待审批、3已提交至审批中心、4审批中、5已撤回、6审批通过、7已驳回~）")
    private Integer state;

    /**
     * 申请时间
     */
    @ApiModelProperty(value = "申请时间")
    @JsonFormat(pattern = DateUtil.DATETIME_FORMAT)
    private Date applyTime;

    /**
     * 修改人id
     */
    @ApiModelProperty(value = "修改人id")
    private Integer modifyUserId;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    @JsonFormat(pattern = DateUtil.DATETIME_FORMAT)
    private Date modifyTime;

    /**
     * 版本信息
     */
    @ApiModelProperty(value = "版本信息")
    private Integer versionNum;

    /**
     * rd_db_dict的主键
     */
    @ApiModelProperty(value = "rd_db_dict的主键")
    private Integer dbId;

    /**
     * item的主键
     */
    @ApiModelProperty(value = "item的主键")
    private String itemId;

    /**
     * 资源ID列表
     */
    @ApiModelProperty(value = "资源ID列表")
    @TableField(exist = false)
    private List<Integer> resIdList;

    /**
     * 所属部门ID
     */
    @ApiModelProperty(value = "所属部门ID")
    @TableField(exist = false)
    private Integer resSourceDeptId;

    /**
     * 所属部门
     */
    @ApiModelProperty(value = "所属部门")
    @TableField(exist = false)
    private String resSourceDept;

    /**
     * 资源状态 ( 1 . 正常  2. 异常)
     */
    @ApiModelProperty(value = "资源状态 ( 1 . 正常  2. 异常)")
    @TableField(exist = false)
    private Integer resState;
    /**
     * 更新频率
     */
    @ApiModelProperty(value = "更新频率")
    @TableField(exist = false)
    private Integer updateFrequency;

    /**
     * 我的审批状态
     */
    @ApiModelProperty(value = "我的审批状态（1.未审批 2.通过 3.驳回）")
    @TableField(exist = false)
    private Integer approvalResult;

    /**
     * 申请人Name
     */
    @ApiModelProperty(value = "申请人Name")
    @TableField(exist = false)
    private String applyUserName;

    /**
     * 自建系统ordeApps
     */
    @ApiModelProperty(value = "自建系统ipList")
    @TableField(exist = false)
    private List<RdOrderApp> orderApps;

    /**
     * 数据源数据rd_db_app
     */
    @ApiModelProperty(value = "数据源数据rd_db_app")
    @TableField(exist = false)
    private List<RdDbApp> dbApps;

    /**
     * 服务地址
     */
    @ApiModelProperty(value = "服务地址")
    @TableField(exist = false)
    private String serviceAddress;

    /**
     * 上传附件信息
     */
    @ApiModelProperty(value = "上传附件信息")
    @TableField(exist = false)
    private List<FileObj> fileInfo;


    /**
     * 资源基本信息及编目信息
     */
    @TableField(exist = false)
    private CatalogVO catalogVO;

    /**
     * 上传路径
     */
    @ApiModelProperty(value = "上传附件信息")
    @TableField(exist = false)
    private String uploadUrl;

}
